//
//  MHHTTPService+Live.h
// MiaoCircle
//
//Created by acgera on 2018/4/9.
//  Copyright © 2018年 acgera. All rights reserved.
//  圈子的接口

#import "MHHTTPService.h"
//#import "MHLiveRoom.h"
#import "MHCircleInfo.h"
#import "MHUploadPicture.h"
#import "MHInitalLocationModel.h"
@interface MHHTTPService (Circle)


//第三方登录
-(RACSignal *) fetchHomeCircleDataWithPageNum:(int) pageNum pageSize:(int) pageSize;

//-(RACSignal *) createCircleWithCategory:(MHCirclContenType) category   payType:(MHCirclPayType) payType attrId:(int )attrId limitType:(MHCirclLimitType )limitType price:(double) price title:(NSString *) title coverUrl:(NSString *)coverUrl intro:(NSString *)intro;
-(RACSignal *) createCircleWith:(MHCircleInfo *) info;

-(RACSignal *) fetchCircleInfoWithCircleId:(int )circleId;

-(RACSignal *) updateCircleInfoWithInfo:(MHCircleInfo *)info;

/**
 更新圈子设置
 
 @param info 圈子信息
 @return 更新后返回的信号
 */
-(RACSignal *) updateCircleSettingWithInfo:(MHCircleInfo *)info;

/**
 获取圈子成员分页列表
 
 @param circleId 圈子ID
 @param roleId 0表示全部，4表示仅普通成员，其他表示除普通成员以外的 1表示被提问列表
 @param pageNum 页码
 @param pageSize 页容量
 @param searchTxt 搜索关键字
 @return 获取返回的信号
 */
-(RACSignal *) fetchCircleMemberPagedListWithCircleId:(int )circleId roleId:(int) roleId pageNum:(int) pageNum pageSize:(int) pageSize searchTxt:(NSString *)searchTxt;

-(RACSignal *) exitCircleWithCircleId:(int) circleId;

-(RACSignal *) joinCircleWithCircleId:(int) circleId;


-(RACSignal *) fetchRecentStoryPagedListWithCircleId:(int )circleId userId:(int) userId isEssence:(int) isEssence  recentType:(int) recentType  pageNum:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) fetchUserExpePagedListWithUserId:(int) userId   pageNum:(int) pageNum pageSize:(int) pageSize;

/**
 获取提问列表

 @param circleId 圈子ID
 @return 返回的信号
 */
-(RACSignal *) getCircleQuestionerListWithCircleId:(int )circleId;

//点赞
-(RACSignal *) likeRecentStoryWithRecentId:(int )recentId type:(int) type;

//评论
-(RACSignal *) publishCommentWithRecentId:(int )recentId content:(NSString *) content  parentId :(int ) parentId;

//删除主题
-(RACSignal *) deleteRecente:(int )recentId;

//置顶主题
-(RACSignal *) topRecente:(int )recentId;


-(RACSignal *) cancelTopRecente:(int )recentId;

// 设置精华

-(RACSignal *) essenceRecente:(int )recentId;
//取消精华
-(RACSignal *) cancelEssenceRecente:(int )recentId;

//发表动态和提问
-(RACSignal *) publishRecentStoryWithCircleId:(int )circleId content:(NSString *)content  data:(NSString *) data labels:(NSString *) labels  recentType:(int) recentType askedUid:(int) askedUid vedioData:(NSString *)vedioData locationData:(NSString *) locationData;

-(RACSignal *) fetchCircleAppAttrList;

-(RACSignal *) fetchCircleCoverList;


//-(RACSignal *) loginByAccout;

-(RACSignal *) loginByWithAccout:(NSString *)account password:(NSString*) password;


-(RACSignal *) UploadCircleCoverWith:(NSString *)name  fileDatas:(NSArray *) data miniType:(NSString *)type;

//上传动态图片
-(RACSignal *) uploadDynamicImg:(NSString *)name  fileDatas:(NSArray *) data miniType:(NSString *)type;

//加载黑名单;
-(RACSignal *) fetchBlackListWithCircleId:(int )circleId  pageNum:(int) pageNum pageSize:(int) pageSize;


-(RACSignal *) addRecentCollectMarkWithRecentId:(int )recentId;

-(RACSignal *) cancelCollectMarkWithRecentId:(int )recentId;

-(RACSignal *) fetchCircleQrCodeWith:(int) circleId;


//-(RACSignal *) getRecentInfoByNewVideoWithRecentId:(int )recentId locationLon:(CGFloat ) locationLon locationLat:(CGFloat) locationLat;
//-(RACSignal *) getRecentVideoPagedListByNearbyWithRecentId:(int )recentId locationLon:(CGFloat ) locationLon locationLat:(CGFloat) locationLat pageNum:(int) pageNum pageSize:(int) pageSize;
-(RACSignal *) getRecentVideoPagedListByNearbyWithRecentId:(int )recentId locationLon:(CGFloat ) locationLon locationLat:(CGFloat) locationLat pageNum:(int) pageNum pageSize:(int) pageSize n:(int)n;

/**
 举报

 @param recentId 动态ID
 @param reportTxt 内容
 @return 信号
 */
-(RACSignal *) reportRecentStoryWithRecentId:(int) recentId  reportTxt:(NSString *) reportTxt;


//-(RACSignal *) searchRecentByContentPagedListWithText:(NSString *) searchText pageNum:(int)pageNum pageSize:(int)pageSize;
-(RACSignal *) searchRecentByContentPagedListWithText:(NSString *) searchText pageNum:(int)pageNum pageSize:(int)pageSize circleId:(int) circleId;


/**
 获取违规分类

 @return 信号
 */
-(RACSignal *) getIllegalList;


/**
 获取标签列表

 @return 信号
 */
//-(RACSignal *) getUserCircleTagList;
-(RACSignal *) getUserCircleTagListWithCircleId:(int) circleId;


/**
 删除标签

 @param tagId tagId
 @return 信号
 */
-(RACSignal *) deleteUserCircleTagWithTagId:(int) tagId;


-(RACSignal *) getRecentStoryInfo:(int) recentId;

-(RACSignal *) getCommentPagedListWithRecentId:(int )recentId   pageNum:(int) pageNum pageSize:(int) pageSize;

/**
 新增标签列表

 @param circleId 圈子ID
 @param tagName 标签名
 @return 返回的信号
 */
-(RACSignal *) addUserCircleTag:(int) circleId tagName:(NSString *) tagName;



/**
 用户回答列表

 @param circleId 圈子ID
 @param userId 用户
 @param pageNum 页码
 @param pageSize 页容量
 @return 返回的信号
 */
-(RACSignal *) getUserAnswerPagedListWithCircleId:(int )circleId userId:(int) userId  pageNum:(int) pageNum pageSize:(int) pageSize;



/**
 获取提问列表

 @param circleId 圈子ID
 @param pageNum 页码
 @param pageSize 页容量
 @return 返回的信号
 */
-(RACSignal *) getUserQuestionPagedListWithCircleId:(int )circleId  pageNum:(int) pageNum pageSize:(int) pageSize;




-(RACSignal *) getAppAdvertList;

/**
 回答提问

 @param recentId ID
 @param content 内容
 @param lon 经度
 @param lat 维度
 @return 返回的信号
 */
-(RACSignal *) answerCircleQuestionsWithRecentId:(int )recentId content:(NSString *)content  lon:(double ) lon  lat:(double )lat;



/**
 获取当前登录用户的动态消息分页列表

 @param pageNum 页码
 @param pageSize 页容量
 @return 返回的信号
 */
-(RACSignal *) getRecentNotificationPagedListPageNum:(int)pageNum pageSize:(int)pageSize;

/**
 获取提问个数

 @param circleId 圈子ID
 @return 返回的信号
 */
-(RACSignal *) getMyQuestionCountWithCircleId:(int) circleId;

/**
  获取收藏列表

 @param circleId 圈子ID
 @param pageNum 页码
 @param pageSize 页容量
 @return 返回的信号
 */
-(RACSignal *) fetchCollectMarkPagedListWithCircleId:(int )circleId   pageNum:(int) pageNum pageSize:(int) pageSize;
#pragma mark Members
-(RACSignal *) pullCircleMemberBlack:(int )circleId userId:(int) userId;
-(RACSignal *) cancelCircleMemberBlack:(int )memberId;
-(RACSignal *) deleteCircleMember:(int )memberId;
-(RACSignal *) setCircleMemberIdentType:(int )memberId identType:(int) identType;
-(RACSignal *) cancelCircleMemberIdentType:(int) memberId;
-(RACSignal *) editCircleMemberQAinfo:(int) memberId txt:(NSString *) txt;
-(RACSignal *) getAuditMemberListWithCircleId:(int )circleId pageNum:(int) pageNum pageSize:(int) pageSize;
-(RACSignal *) auditMemberJoin:(int) auditId  auditType:(int) auditType;
-(RACSignal *) editCircleMemberQAinfoWithMemberId:(int )memberId txt:(NSString *)txt;
-(RACSignal *) auditMemberJoinWithAuditId:(int )auditId auditType:(MHAuditStatus ) auditType;
-(RACSignal *) deleteCommentWith:(int) commentId;
-(RACSignal *) getUserFullInfoWithuserId:(int)userId;
-(RACSignal *) getFindRecentPagedListWithType:(int) type  pageNum:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) getNearbyRecentPagedListWithPageNum:(int) pageNum pageSize:(int) pageSize locationLat:(CGFloat )locationLat
                                       locationLon:(CGFloat )locationLon;
-(RACSignal *) getHelpTipsList;
-(RACSignal *) addSuggestWithUserId:(int )userId sugTxt:(NSString *) sugTxt;
-(RACSignal *) bindTelephoneWithTelephone:(NSString *)telephone verifyCode:(NSString *) verifyCode;
-(RACSignal *) createVerifyCode:(NSString *)telephone;
-(RACSignal *) changeBindTelephone:(NSString *)newTelephone   newVerifyCode:(NSString *) newVerifyCode oldVerifyCode:(NSString *) oldVerifyCode;
-(RACSignal *) shareRecentStoryWithCircleId:(int )circleId   recentId:(int ) recentId;
-(RACSignal *) joinCircleWithCircleId:(int) circleId info:(NSString *) info;
-(RACSignal *) fetchDownloadAppH5;
-(RACSignal *) getAuthorizationStatus;
-(RACSignal *) getSystemMgsPagedListWithPageNum:(int) pageNum pageSize:(int) pageSize;
-(RACSignal *) getRewardActivityInfoWithCircleId:(int) circleId;
//-(RACSignal *) getRewardActivityInfoWithCircleId:(int) circleId;
-(RACSignal *) getUserPurseDetailPagedListWithPageNum:(int) pageNum pageSize:(int) pageSize type:(int) type;
-(RACSignal *) getFindRecentListByNewRule:(int) oprtType reFlashTime:(NSString *) reFlashTime;

-(RACSignal *) getUserPurseInfo;

-(RACSignal *) getCarhOprtInfo;

-(RACSignal *) addWeiXinPayAccountWith:(NSString *)realName idCard:(NSString *) idCard;

-(RACSignal *) addCashDetailWithAmount:(CGFloat )amount;

-(RACSignal *) getUserCashDetailPagedListWithPageNum:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) getJoinCirclePriceRange;

-(RACSignal *) searchCirclePagedListWithTitle:(NSString *)title pageNum:(int) pageNum pageSize:(int) pageSize;
-(RACSignal *) getNewMenberPagedListWithPageNum:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) getUserRecentLikePagedList:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) modifyUserProfileWithHeadPic:(NSString *) headPic nickName:(NSString *)nickName;
-(RACSignal *) uploadUserFaceWith:(NSString *)name  fileDatas:(NSArray *) data miniType:(NSString *)type;
-(RACSignal *) updateRecentViewCountWithVideoId:(int) videoId recentId:(int )recentId;
-(RACSignal *) getRecentInfoByNewVideoWithRecentId:(int )recentId;
-(RACSignal *) getNewVideoRecentInfoByHistoryRedWithRecentId:(int )recentId;
//-(RACSignal *) getRecentInfoByNewVideoWithRecentId:(int )recentId isRedPacket:(BOOL)isRedPacket;

-(RACSignal *) getRecentListByNewVideoWithRecentId:(int )recentId  pageNum:(int) pageNum pageSize:(int) pageSize;
-(RACSignal *) getRecentPagedListByNewVideoTimeDescWithRecentId:(int )recentId circleId:(int)circleId   pageNum:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) getRecentVideoPagedListByUserCollectWithMarkId:(int )markId  pageNum:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) updateRecentShareCountWithRecentId:(int )recentId type: (int) type;

-(RACSignal *) getNearbyCirclePagedListWithLocationLat:(float )locationLat locationLon:(float) locationLon pageNum:(int) pageNum pageSize:(int) pageSize;

-(RACSignal *) getUserCirclePushStatus;
-(RACSignal *) userLocationWithLocation:(CLLocation *)location;

-(RACSignal *) appFuQinJoinCircleWithCircleId:(int) circleId openid:(NSString *)openId inviteUserKey:(NSString *)inviteUserKey;

-(RACSignal *) getUserBindInviteCode;
-(RACSignal *) bindUserInviteCodeWithInviteCode:(NSString *) inviteCode;
-(RACSignal *) getChatCircleSimpleInfoWithCircleId:(int ) circleId;

-(RACSignal *) getShareWxFriendStatus;
@end
